/**
 * 
 */
package pl.edu.mimuw.irs.core.model.petrinet;

import java.util.Set;

/**
 * @author Jakub Rauch
 * Created on: 2010-03-02
 */
public interface ITransition extends INode {

	/**
	 * Transition is active iff all (incoming) arcs are active.
	 */
	public abstract boolean isActive();

	/**
	 * Executes this transition - it means it will execute all incoming and all 
	 * outgoing arcs.
	 */
	public abstract boolean invoke();

	/**
	 * Finds transitions, that are beyond the one provided - i.e. that will be 
	 * activated by executing this transition. This procedure is useful when it is 
	 * known, that given transition has just been invoked and we need to know which
	 * transitions has been activated (if any).
	 * @param transition
	 * @return
	 */
	public abstract Set<ITransition> getFollowingActiveTransitions();

}